package br.com.sap.visao;

import org.zkoss.zul.Checkbox;
import org.zkoss.zul.ListModelList;
import org.zkoss.zul.Listbox;

import br.com.sap.controle.CategoriaControle;
import br.com.sap.controle.ControleGenerico;
import br.com.sap.modelo.Categoria;
import br.com.sap.modelo.enums.EnumSituacao;

public class CtrlCategoriaComposer extends CtrlGenericComposer{

	private static final long serialVersionUID = 1L;
	private String chaveBusca;
	private Categoria categoria = new Categoria();
	private CategoriaControle categoriaControle = new CategoriaControle();
	private ListModelList<Categoria> ListarCategoria;
	private Checkbox statusExcluido;
	private Listbox box;
	
	@SuppressWarnings("rawtypes")
	@Override
	public ControleGenerico getControle() {
		// TODO Auto-generated method stub
		return categoriaControle;
	}

	

	public Categoria getCategoria() {
		return categoria;
	}

	public void setCategoria(Categoria categoria) {
		this.categoria = categoria;
	}
	
	public ListModelList<Categoria> getListarCategoria() {
		return ListarCategoria;
	}



	public String getChaveBusca() {
		return chaveBusca;
	}



	public void setChaveBusca(String chaveBusca) {
		this.chaveBusca = chaveBusca;
	}



	public void setListarCategoria(ListModelList<Categoria> listarCategoria) {
		ListarCategoria = listarCategoria;
	}
	
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public void inicializarVariaveis() {
		
		chaveBusca = "";
		categoria = new Categoria();
		categoriaControle = new CategoriaControle();
		ListarCategoria= new ListModelList(this.categoriaControle.getListarCategorias());	
		
	}
	
	

	public void alterarCategoria() {
		this.categoria = ListarCategoria.get(box.getSelectedIndex());
		this.binder.loadAll();
	}

	public void registrarCategoria(){
		
		categoria.setStatus(1);
		categoria.setSituacao(EnumSituacao.ATIVO);
		categoriaControle.registrarCategoria(categoria);
		
	}
	
	
	@SuppressWarnings({ "rawtypes", "unchecked" })
	public void procuraCategoria() {
		
			if(chaveBusca != ""){
					if (statusExcluido.isChecked()){
						this.categoriaControle.getServico().camposProcura.add(("situacao"),"0", true);
						this.categoriaControle.getServico().camposProcura.add(("descricao"),this.chaveBusca);
						this.categoriaControle.getServico().camposProcura.setCondicional("and");
						this.ListarCategoria = new ListModelList(this.categoriaControle.procura());
						this.binder.loadAll();
					}else{
						this.categoriaControle.getServico().camposProcura.add(("situacao"),"1", true);
						this.categoriaControle.getServico().camposProcura.add(("descricao"),this.chaveBusca);
						this.categoriaControle.getServico().camposProcura.setCondicional("and");
						this.ListarCategoria = new ListModelList(this.categoriaControle.procura());
						this.binder.loadAll();
					}
			}else{
				if (statusExcluido.isChecked()){
					
					this.ListarCategoria = new ListModelList(this.categoriaControle.getListarCategoriasDesativadas());
					this.binder.loadAll();
				}else{
				this.ListarCategoria = new ListModelList(this.categoriaControle.getListarCategorias());
				this.binder.loadAll();
			}
			}
		
	}
	
	public void desativarCategoria(){
		categoriaControle.desativarCategoria(categoria);
		
	}
	
	
}
	
	
	
	
	
	
	
	